home *** CD-ROM | disk | FTP | other *** search
-
- /* more kludgery
-
- ldexp(value, exp) apparently returns value * 2 ^ exp.
-
- there's some wierdness that happens for overflows or underflows,
- but I'm not dealing with that now.
- */
-
- double ldexp(value, exp)
- double value;
- int exp;
- {
- long factor = 1;
-
- if (exp == 0) return(value);
- if (exp > 0)
- {
- for ( ; exp > 0 ; exp--)
- factor = factor * 2;
- return(value * factor);
- }
- else
- {
- exp = -exp;
- for ( ; exp > 0 ; exp--)
- factor = factor * 2;
- return(value / factor);
- }
- }
-